package main

import (
	"fmt"
)

/*
	多行注释
	main函数的作用是....
*/

// 第一行注释
// 第二行注释

func main() {
	// 注释
	// ctl + J win上
	// command + J mac上
	// fmt.Println(min(1 /*第一个操作数*/, 2)) // 后面写注释说明改行的作用，打印到控制台
	// fmt.Println(max(1, 2))
	// TODO 某功能未完成
	// var a int = 100
	// fmt.Println(a)
	// var if = 100 // 关键字不能作为变量名
	// var int float32 = 2.1 // 不要使用类型明作为变量名
	// fmt.Println(int)
	// var b = 100 // 有一个名称 a 变量标识符，指定一个值 100
	// // fmt.Println(b)
	fmt.Println("YZY")
	const s = "YZY" // 定义常量, 左边没有指定类型，类型推导，依据是等号右边字面量字符串常量，s 是 string
	const S string = "YZY"

	var b = 100       // 类型推导
	const a int = 111 // 常量要求定义必须初始化
	fmt.Println(a, b)

	const d, c int = 1, 2
	fmt.Println(d, c)

	const (
		e = 100
		f = 200
		g = "abc"
	)

	fmt.Println(e, f, g)

	var (
		h = 100
		i = 200
		j = "abc"
	)
	fmt.Println(h, i, j)

	var (
		k int
		l float64
		m = true
	)
	fmt.Println(k, l, m)
	const n = 0

	var o = [3]int{1, 2, 3} // 数组的字面量标识符，[3]int 数组类型，{}可以在大括号中写元素了
	fmt.Println(o)          // 打印出来表达方式

	// 顶层代码，定义全局标识符，全局变量、全局常量，不可以使用短格式
	const p = 100

	var q string // 零值
	var r = 300  // int
	// s := 400 // 短格式不可以用在顶层代码中
	fmt.Println(q, r)

}
